package io;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JAVA IO 输入与输出
 * java按照输入与输出方向划分两个操作：读和写
 * 输入是用来读取的，是从外界输入到程序中的方法
 * 输出是用来写出的。
 *
 * java将输入与输出比喻为“流(stream)",即：向一侧顺序移动的过程。
 * 并且定义了两个超类：
 * java.io.InputStream: 输入流
 * 里面规定了所有字节输入流的读取方法。将来实际读取不同设备的输入流都
 * 继承自它，因此都会有这里定义的操作，使得程序员可以用相同的读取方式读取
 * 不同设备
 *
 * java.in。OutputStream:输出流，所有字节输出流都继承自它，
 * 里面定义了写出字节的方法。
 *
 * 文件流：
 * java.io.FileInputStream和FileOutputSteam
 * 他们继承自InputStream和outputStream.用来连接文件，进行读写文件数据的流
 */
public class FOSDemo {
    public static void main(String[] args) throws IOException {
        /*
            文件输出流提供了两种构造方法：
            需要注释，如果指定文件的不存在会自动将其创建出来，前提是
            该文件所在的目录必须存在
         */
        //向当前目录下的fos.dat文件写入数据
       /* File file = new File("./fos.dat");
        FileOutputStream fos = new FileOutputStream(file);*/

        FileOutputStream fos = new FileOutputStream("./fos.dat");
        /*
            void write(int d)
            写一个字节，将给定的int值对应的2进制的"低八位"写入文件
            00000000 00000000 00000000 00000001
         */
        fos.write(1);
        /*
            void write(int d)
            写一个字节，将给定的int值对应的2进制的"低八位"写入文件
            00000000 00000000 00000000 0000001
         */
        fos.write(2);

        //关闭通道
        fos.close();
    }
}
